#include "fileUtil.hpp"
#include "jsonUtil.hpp"
#include "config.hpp"
#include "dataManager.hpp"
#include "hotManager.hpp"
#include "service.hpp"
#include <thread>

using namespace std;

// g++  $^ -o $@ -L./mylib/lib/ -lbundle -lpthread -ljsoncpp -lstdc++fs -L/lib/mysql -lmysqlclient -std=c++17

// 声明全局指针对象 如果声明为局部的 当出了作用域 生命周期截止 指针对象销毁 堆空间泄露
//_dataManager 的定义在程序其他部分尝试访问它之前就已经完成
std::shared_ptr<cloudBackup::DataManager> _dataManager(new cloudBackup::DataManager());

void HotTest()
{
	cloudBackup::HotManager hot;
	hot.RunHotManager();
}

void ServiceTest()
{
	cloudBackup::Service srv;
	srv.RunServiceModule();
}

int main(int argc, char *argv[])
{
	// 服务端启动
	std::thread thread_hotManager(HotTest);
	std::thread thread_serviceModule(ServiceTest);
	thread_hotManager.join();
	thread_serviceModule.join();

	return 0;
}
